.TH STRING 3 
.SH NAME
strcat, strncat, strcmp, strncmp, strcpy, strncpy, strlen, index, rindex \- string operations
.SH SYNOPSIS
.B char *strcat(s1, s2)
.br
.B char *s1, *s2;
.PP
.B char *strncat(s1, s2, n)
.br
.B char *s1, *s2;
.PP
.B strcmp(s1, s2)
.br
.B char *s1, *s2;
.PP
.B strncmp(s1, s2, n)
.br
.B char *s1, *s2;
.PP
.B char *strcpy(s1, s2)
.br
.B char *s1, *s2;
.PP
.B char *strncpy(s1, s2, n)
.br
.B char *s1, *s2;
.PP
.B strlen(s)
.br
.B char *s;
.PP
.B char *index(s, c)
.br
.B char *s, c;
.PP
.B char *rindex(s, c)
.br
.B char *s;
.SH DESCRIPTION
These functions operate on null-terminated strings.
They do not check for overflow of any receiving string.
.PP
.I Strcat
appends a copy of string
.I s2
to the end of string
.IR s1 .
.I Strncat
copies at most
.I n
characters.
Both return a pointer to the null-terminated result.
.PP
.I Strcmp
compares its arguments and returns an integer
greater than, equal to, or less than 0,
according as
.I s1
is lexicographically greater than, equal to, or
less than
.IR s2 .
.I Strncmp
makes the same comparison but looks at at most
.I n
characters.
.PP
.I Strcpy
copies string
.I s2
to
.I s1,
stopping after the null character has been moved.
.I Strncpy
copies exactly
.I n
characters,
truncating or null-padding
.I s2;
the target may not be null-terminated if the length
of
.I s2
is
.I n
or more.
Both return
.IR s1 .
.PP
.I Strlen
returns the number of non-null characters in
.IR s .
.PP
.I Index
.RI ( rindex )
returns a pointer to the first (last)
occurrence of character 
.I c
in string
.I s,
or zero if
.I c
does not occur in  the string.
.SH BUGS
.I Strcmp 
uses native character comparison, which is signed
on PDP11's, unsigned on other machines.
